﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using SoucreGame.GLO;

namespace SoucreGame.DTO
{
    class CInfoKyNang
    {
        /// <summary>
        /// Thể hiện tên kỹ năng của tướng
        /// </summary>
        string ten;
        public string Ten
        {
            get { return ten; }
            set { ten = value; }
        }

        /// <summary>
        /// Thể hiện phạm vi ảnh hưởng của kỹ năng
        /// </summary>
        int phamViAnhHuong;
        public int PhamViAnhHuong
        {
            get { return phamViAnhHuong; }
            set { phamViAnhHuong = value; }
        }

        /// <summary>
        /// Thể hiện sức tấn công của kỹ năng
        /// </summary>
        int sucTanCong;
        public int SucTanCong
        {
            get { return sucTanCong; }
            set { sucTanCong = value; }
        }

        /// <summary>
        /// Thể hiện hình ảnh của kỹ năng
        /// </summary>
        Texture2D hinhTheHien;
        public Texture2D HinhTheHien
        {
            get { return hinhTheHien; }
            set { hinhTheHien = value; }
        }

        /// <summary>
        /// Vị trí ảnh kỹ năng
        /// </summary>
        Dictionary<string, Rectangle> viTriAnh;
        public Dictionary<string, Rectangle> ViTriAnh
        {
            get { return viTriAnh; }
            set { viTriAnh = value; }
        }

        /// <summary>
        /// Tốc độ di chuyển của kỹ năng
        /// </summary>
        float tocDoDiChuyen;
        public float TocDoDiChuyen
        {
            get { return tocDoDiChuyen; }
            set { tocDoDiChuyen = value; }
        }

        /// <summary>
        /// Số thứ tự ảnh bắt đầu
        /// </summary>
        int sttAnhBatDau;
        public int SttAnhBatDau
        {
            get { return sttAnhBatDau; }
            set { sttAnhBatDau = value; }
        }

        /// <summary>
        /// Số lượng ảnh
        /// </summary>
        int soLuongAnh;
        public int SoLuongAnh
        {
            get { return soLuongAnh; }
            set { soLuongAnh = value; }
        }

        /// <summary>
        /// Vector 
        /// </summary>
        Vector2 vecPos;
        public Vector2 VecPos
        {
            get { return vecPos; }
            set { vecPos = value; }
        }

        /// <summary>
        /// Chu kỳ di chuyển của kỹ năng
        /// </summary>
        int chuKyDiChuyen;
        public int ChuKyDiChuyen
        {
            get { return chuKyDiChuyen; }
            set { chuKyDiChuyen = value; }
        }

        /// <summary>
        /// Trạng thái tồn tại của kỹ năng
        /// </summary>
        Trangthai trangThai;
        public Trangthai TrangThai
        {
            get { return trangThai; }
            set { trangThai = value; }
        }

        public ContentManager Content { get; set; }
        public GameTime GameTime { get; set; }
        public SpriteBatch SpriteBatch { get; set; }

        public CInfoKyNang()
        {

            ten = "";
            phamViAnhHuong = 0;
            sucTanCong = 0;
            hinhTheHien = null;
            viTriAnh = null;
            tocDoDiChuyen = 0;
            sttAnhBatDau = 0;
            soLuongAnh = 0;
            vecPos = Vector2.Zero;
            chuKyDiChuyen = 0;

            if (this.Content != null)
            {
                this.hinhTheHien = Content.Load<Texture2D>("Hero\\PhapSu\\BomNo");
                this.viTriAnh = Content.Load<Dictionary<string, Rectangle>>("Hero\\PhapSu\\Bom_No");
            }
        }

        public CInfoKyNang(ContentManager content, GameTime gameTime, SpriteBatch spriteBatch)
        {
            this.Content = content;
            this.GameTime = gameTime;
            this.SpriteBatch = spriteBatch;
            this.ten = "ten";
            this.phamViAnhHuong = 6;
            this.sucTanCong = 5;
            this.tocDoDiChuyen = 7;
            this.sttAnhBatDau = 1;
            this.soLuongAnh = 10;
            this.vecPos = new Vector2(100, 100);
            this.chuKyDiChuyen = 9;
            this.trangThai = Trangthai.song;
            if (content != null)
            {
                this.hinhTheHien = content.Load<Texture2D>("Hero\\PhapSu\\BomNo");
                this.viTriAnh = content.Load<Dictionary<string, Rectangle>>("Hero\\PhapSu\\Bom_No");
            }
        }
    }
}
